/*
date:20210303
key:暴力循环遍历可能，通过适当的限制减少循环次数。
*/
#include <bitset>  
#include<iostream>
#include<sstream>
#include<stdlib.h>
using namespace std;
long hex_int(string s, int base)
{
	//string转成字符数组
	char* s1 = new char[s.size()];
	for (int i = 0; i < s.size(); i++)
	{
		s1[i] = s[i];

	}
	char* s2;
	//以base为底的数字以字符数组输入，得到10进制对应数字
	return strtol(s1, &s2, base);
}

int main()
{

	/*cout << "35的10进制" << std::dec << 35 << endl;
	cout << "35的16进制:" << std::hex << 35 << endl;
	cout << "35的2进制: " << bitset<8>(35) << endl;*/
	int i, n, j, y,t,k,r;
	long int p;

	cin >> p;
	for (i = 1; i < 10; i++)
	{
		if (2 * i > p)
		{
			break;
		}
		for (j = 0; j < 10; j++)
		{
			
			for (k = 0; k < 10; k++)
			{
				for (y = 0; y < 10; y++)
				{
					for (t = 0; t < 10; t++)
					{
						
						if (i == t && j == y)
						{
							if (i * 2 + j * 2 + k == p)
							{
								cout << i << j << k << y << t;
								cout << "\n";
							}
						}
						//cout << "\n";
					}
				}
			}
			
		}
		
	}
	for (i = 1; i < 10; i++)
	{
		if (2 * i > p)
		{
			break;
		}
		for (j = 0; j < 10; j++)
		{

			for (k = 0; k < 10; k++)
			{
				for (y = 0; y < 10; y++)
				{
					for (t = 0; t < 10; t++)
					{
						for (r = 0; r < 10; r++)
						{
							if (i == r && j == t&&k==y)
							{
								if (i * 2 + j * 2 + k*2 == p)
								{
									cout << i << j << k << y << t<<r;
									cout << "\n";
								}
							}
						}
						
						//cout << "\n";
					}
				}
			}

		}

	}
}
